This invention relates generally to packet switched networks and more particularly to dynamically throttling audio packets according to the utilization capacity of a Voice over Internet Protocol (VoIP) gateway.
In VoIP applications, an originating voice gateway quantizes a digital audio stream from an incoming call into packets. The packets are formatted then sent over an Internet Protocol (IP) network to a destination voice gateway. The destination voice gateway converts the packets back into a digital audio stream that resembles the original audio stream.
A large amount of network bandwidth is used as overhead when the digital audio steam is converted and transmitted as packets. For example, in Realtime Transport Protocol (RTP)-encapsulated VoIP, a common codec technique packetizes two 10 millisecond (ms) frames of speech into one audio packet. For a 8 kilobit per second (Kbit/s) coder, the 20 milliseconds of speech uses 20 bytes (8 bits per byte) in the audio packet. However, there are an additional 40 bytes or so in each audio packet used for overhead. For instance, 20 bytes are used for an Internet Protocol (IP) header, 8 bytes are used for a User Datagram Protocol (UDP) header, and 12 bytes for a Realtime Transport Protocol (RTP) header. The overhead to payload ratio is about 2 to 1, with two bytes of packet header for every one byte of actual audio packet payload.
A large percentage of the voice gateway's processing resources are used to encode and format the audio stream into VoIP packets. Processing resources in the voice gateway can be overloaded if too many audio streams are received and have to be processed by the voice gateway at the same time.
When the voice gateway is overloaded, it cannot encode and transmit voice packets fast enough to keep up with the amount of incoming audio data. One cause of voice gateway overload is the limited size of interface buffers used to buffer audio packets before being formatted and transmitted over the IP network. If the interface buffer fills up, the voice gateway has nowhere to store new audio packets. When the voice gateway is overloaded like this, the voice gateway starts dropping packets.
Another cause of voice gateway overload is the limited processing capacity of a Central Processing Unit (CPU) in the voice gateway. A large percentage of the voice gateway CPU processing capacity is used to switch the audio packets from the DSP to the output IP interface. Switching involves the following operations: receiving audio packets from the DSP, decapsulating, encapsulating IP and UDP headers, forwarding the packet to the correct IP interface, link layer encapsulation, queuing the packet at that interface and finally transmitting the packet. If there are too many calls to the voice gateway, the CPU cannot switch the packets fast enough for each call. The voice gateway is again overloaded and again is forced to drop packets.
Dropping packets has a detrimental effect on sound quality of the VoIP call since good sound quality depends on timely and highly reliable delivery of real time audio packets. Accordingly, a need remains for throttling audio packets in a voice gateway without severely degrading quality of VoIP calls.